package com.agileai.bpm.domain.running;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.agileai.bpm.domain.define.Process;
import com.agileai.bpm.domain.define.Properties;
import com.agileai.bpm.domain.history.ActivityHistory;

public class ProcessInstance extends RunningObject{
	private String processId = null;
	private Process process = null;
	private HashMap<String,ActivityInstance> activityInstances = new HashMap<String,ActivityInstance>();
	private HashMap<String,ProcessVariableInstance> variableInstances = new HashMap<String,ProcessVariableInstance>();
	private List<ActivityHistory> activityHistorys = new ArrayList<ActivityHistory>();
	
	private String bizRecordId = null;
	private String bizRecordCode = null;
	private String title = null;
	private String laucherId = null;
	private String laucherName = null;
	private String laucheTime = null;
	
	private String operaterId = null;
	private String operaterName = null;
	private String operateTime = null;
	private String status = null;
	private Properties properties = null;
	
	public Process getProcess() {
		return process;
	}
	public void setProcess(Process process) {
		this.process = process;
	}
	public HashMap<String, ActivityInstance> getActivityInstances() {
		return activityInstances;
	}
	public List<ActivityHistory> getActivityHistorys() {
		return activityHistorys;
	}
	public HashMap<String, ProcessVariableInstance> getVariableInstances() {
		return variableInstances;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	
	public static final class Status{
		public static final String running = "running";
		public static final String suspend = "suspend";
	}

	public String getLaucherId() {
		return laucherId;
	}
	public void setLaucherId(String laucherId) {
		this.laucherId = laucherId;
	}
	public String getLaucherName() {
		return laucherName;
	}
	public void setLaucherName(String laucherName) {
		this.laucherName = laucherName;
	}
	public String getLaucheTime() {
		return laucheTime;
	}
	public void setLaucheTime(String laucheTime) {
		this.laucheTime = laucheTime;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}

	public String getProcessId() {
		return processId;
	}
	public void setProcessId(String processId) {
		this.processId = processId;
	}
	public String getOperaterId() {
		return operaterId;
	}
	public void setOperaterId(String operaterId) {
		this.operaterId = operaterId;
	}
	public String getOperaterName() {
		return operaterName;
	}
	public void setOperaterName(String operaterName) {
		this.operaterName = operaterName;
	}
	public String getOperateTime() {
		return operateTime;
	}
	public void setOperateTime(String operateTime) {
		this.operateTime = operateTime;
	}
	public String getBizRecordId() {
		return bizRecordId;
	}
	public void setBizRecordId(String bizRecordId) {
		this.bizRecordId = bizRecordId;
	}
	public String getBizRecordCode() {
		return bizRecordCode;
	}
	public void setBizRecordCode(String bizRecordCode) {
		this.bizRecordCode = bizRecordCode;
	}
	public Properties getProperties() {
		return properties;
	}
	public void setProperties(Properties properties) {
		this.properties = properties;
	}
}
